// 生成器函数
// function foo() {
//     console.log(111)
//     return 100
// }
// foo()

// 生成器函数
function * foo() {
    console.log(111)
    yield 100
    console.log(222)
    yield 200
    console.log(333)
    yield 300
}
const result = foo() // 生成一个生成器对象，具有next方法
console.log(result.next())
console.log(result.next())
console.log(result.next())
console.log(result.next())

// 生成器应用
// 死循环 id自增
function * createMaker() {
    let id = 0
    while(true) {
       yield id ++ 
    }
}
const res = createMaker()
console.log(res.next().value) // 0
console.log(res.next().value) // 1
console.log(res.next().value) // 2
console.log(res.next().value) // 3



// 生成器实现链式调用
// 封装函数

const ajax = new Promise((resolve, reject) => {

})

function * main (){
    const res1 = yield ajax('xxxx') // res1等于是调用的时候传递的参数  11
}

const g = main()
g.next('11') //